package com.dao;

import com.entity.Area;

import java.util.List;

public interface AreaMapper {
    /**
     * 获得Area数据的总行数
     *
     * @return
     */
    long getAreaRowCount();

    /**
     * 查询所有省市信息
     * 获得Area数据集合
     *
     * @return
     */
    List<Area> selectArea();

    /**
     * 获得一个Area对象,以参数Area对象中不为空的属性作为条件进行查询
     *
     * @param obj
     * @return
     */
    Area selectAreaByObj(Area obj);

    /**
     * 通过Area的id获得Area对象
     *
     * @param id
     * @return
     */
    Area selectAreaById(Integer id);

    /**
     * 插入Area到数据库,包括null值
     *
     * @param value
     * @return
     */
    int insertArea(Area value);

    /**
     * 插入Area中属性值不为null的数据到数据库
     *
     * @param value
     * @return
     */
    int insertNonEmptyArea(Area value);

    /**
     * 批量插入Area到数据库,包括null值
     *
     * @param value
     * @return
     */
    int insertAreaByBatch(List<Area> value);

    /**
     * 通过Area的id删除Area
     *
     * @param id
     * @return
     */
    int deleteAreaById(Integer id);

    /**
     * 通过Area的id更新Area中的数据,包括null值
     *
     * @param enti
     * @return
     */
    int updateAreaById(Area enti);

    /**
     * 通过Area的id更新Area中属性不为null的数据
     *
     * @param enti
     * @return
     */
    int updateNonEmptyAreaById(Area enti);

    //通过省市编码获取省的名字(parent_code=null,area_code =provinceCode)

    String getParentName(String parent_code, String area_code);

    //获取市名(parent_code=provinceCode,area_code =cityCode)
    String getCityName(String parent_code, String area_code);

    //获取省市信息
    List<Area> getAreas(String search, String subSQL);
}